const fs = require("fs");
const path = require("path");

// 直接分析enum-references.txt文本
export async function enumKeyCount() {
  return new Promise((resolve, reject) => {
    // 文件路径
    const filePath = path.join(__dirname, "enum-references.txt");

    // 读取文件内容
    fs.readFile(filePath, { encoding: "utf-8" }, (err, data) => {
      if (err) {
        console.error("Error reading file:", err);
        return;
      }

      // 分析并统计枚举字段出现次数
      const result = analyzePermissions(data);
      resolve(result);
    });
  });
}

// 分析权限并统计次数的函数
function analyzePermissions(data) {
  const lines = data.split("\n"); // 将文本分割为行
  const enumPattern = /EnumPermissions\.(\w+)/; // 用于匹配枚举字段的正则表达式
  const counts = {}; // 用于存储计数的对象

  for (const line of lines) {
    const match = line.match(enumPattern);
    if (match) {
      const permission = match[1]; // 获取枚举字段名称
      if (!counts[permission]) {
        counts[permission] = 0; // 如果还没有计数，则初始化为0
      }
      counts[permission]++; // 增加计数
    }
  }

  return counts;
}
